/* 
 * File:   RrefInterface.h
 * Author: gustavo
 *
 * Created on August 19, 2012, 12:38 AM
 */

#ifndef RREFINTERFACE_H
#define	RREFINTERFACE_H


#include "TransformInterface.h"

#include "../matrix.hpp"



namespace imp {

	namespace math {

		template <typename T> class RrefInterface : public TransformInterface< Matrix<T> > {
			/////

		public:
			virtual const Matrix<T>& getReducedForm() const = 0;
			virtual const Matrix<T>& getNullSpace() const = 0;
			virtual bool hasNullSpace() const = 0;
			virtual int getRank() const = 0;

		};
	}

}



#endif	/* RREFINTERFACE_H */

